import { marked } from 'marked'

// 统一配置 marked - 支持完整的 Markdown 功能
marked.setOptions({
  breaks: true,        // 支持换行
  gfm: true,          // 启用 GitHub Flavored Markdown
  tables: true,       // 支持表格
  pedantic: false,    // 不严格遵循原始 markdown.pl
  sanitize: false,    // 不清理 HTML（如需安全可设为 true）
  smartLists: true,   // 智能列表
  smartypants: false  // 不转换引号和破折号
})

/**
 * 将 Markdown 文本转换为 HTML
 * @param {string} markdown - Markdown 文本
 * @returns {string} HTML 字符串
 */
export function parseMarkdown(markdown) {
  if (!markdown) {
    return ''
  }
  return marked(markdown)
}

/**
 * 计算文本字数（去除 HTML 标签）
 * @param {string} text - 文本内容
 * @returns {number} 字数
 */
export function getWordCount(text) {
  if (!text) return 0
  return text.replace(/<[^>]*>/g, '').length
}

/**
 * 估算阅读时间（分钟）
 * @param {string} content - 文章内容
 * @param {number} wordsPerMinute - 每分钟阅读字数，默认 300
 * @returns {number} 阅读时间（分钟）
 */
export function estimateReadTime(content, wordsPerMinute = 300) {
  if (!content) return 0
  const wordCount = getWordCount(content)
  const minutes = Math.ceil(wordCount / wordsPerMinute)
  return Math.max(1, minutes) // 至少 1 分钟
}

export default {
  parseMarkdown,
  getWordCount,
  estimateReadTime
}

